home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 021-030 / amok28 / turtle / turtledemo.mod < prev    next >
Text File  |  1993-11-04  |  3KB  |  108 lines

  1. MODULE TurtleDemo;
  2.  
  3. FROM Turtle    IMPORT InitTurtleScr, Forward, Back, Left, Right, SetHeading, 
  4.                       PenUp, PenDown, PenColor, MoveTo, dMove, HideTurtle, 
  5.                       PlotText;
  6. FROM Arts      IMPORT TermProcedure;
  7. FROM SYSTEM    IMPORT ADR;
  8. FROM Intuition IMPORT ScreenPtr, NewScreen, OpenScreen, CloseScreen;
  9. FROM Graphics  IMPORT ViewModeSet;
  10.  
  11. VAR
  12.   sp : ScreenPtr;
  13.   ns : NewScreen;
  14.   Ecken, Zaehler, Winkel, n : INTEGER;
  15.   Ciapra[0BFE001H] : SET OF (s0,s1,s2,s3,s4,s5,lmb);
  16.  
  17. PROCEDURE Close;
  18.   BEGIN
  19.     IF sp # NIL THEN CloseScreen(sp); END;
  20.   END Close;
  21.   
  22. BEGIN
  23.   TermProcedure(Close);
  24.   
  25.   FOR n := 0 TO 1 DO   (* einmal mit Turtle, dann ohne Turtle <HideTurtle>
  26.                           --> noch (!) schneller !!!                       *)
  27.     WITH ns DO
  28.       width := 320; height := 250; depth := 8;
  29.       viewModes := ViewModeSet{}; blockPen := 1;
  30.       IF n = 0 THEN defaultTitle := ADR("Turtlegrafik - D E M O  von M.Weigl");
  31.                ELSE defaultTitle := ADR("... und jetzt noch schneller"); END;
  32.     END;
  33.     sp := OpenScreen(ns);
  34.     InitTurtleScr(sp); 
  35.     IF n = 1 THEN HideTurtle; END;
  36.  
  37.     (* n-Eck *)
  38.     
  39.     MoveTo(10,12);
  40.     FOR Ecken := 3 TO 8 DO 
  41.       Winkel := 360/Ecken;
  42.       SetHeading(90);
  43.       FOR Zaehler := 1 TO Ecken DO
  44.         PenColor(Ecken-2);
  45.         Forward(20);
  46.         Right(Winkel);
  47.       END;
  48.       dMove(50,0);
  49.     END;
  50.   
  51.     (* n-Stern *)
  52.     
  53.     MoveTo(20,110);
  54.     PenColor(4);
  55.     FOR Ecken := 11 TO 5 BY -2 DO 
  56.       Winkel := 720/Ecken;
  57.       SetHeading(90);
  58.       FOR Zaehler := 1 TO Ecken DO
  59.         Forward(40);
  60.         Left(Winkel);
  61.       END;
  62.       dMove(70,0);
  63.     END;
  64.    
  65.     (* rotierende Quadrate *)
  66.     
  67.     MoveTo(20,150);
  68.     PenColor(6);
  69.     FOR Winkel := 45 TO 135 BY 10 DO
  70.       SetHeading(Winkel);
  71.       PenUp;
  72.       Forward(18);
  73.       Left(135);
  74.       PenDown;
  75.       FOR Zaehler := 1 TO 4 DO
  76.         Forward(25);
  77.         Left(90);
  78.       END;
  79.       SetHeading(Winkel);
  80.       PenUp;
  81.       Back(18);
  82.       dMove(20,0);
  83.     END;
  84.     MoveTo(260,180);
  85.     PenColor(3);
  86.     PenDown;
  87.     FOR Winkel := 0 TO 360 BY 9 DO
  88.       SetHeading(Winkel);
  89.       FOR Zaehler := 1 TO 4 DO
  90.         Forward(30);
  91.         Left(90);
  92.       END;
  93.     END;
  94.     IF n = 0 THEN
  95.       PenColor(2);
  96.       PlotText(10,195,"falls Ihnen das noch nicht");
  97.       PlotText(10,210,"schnell genug war, sollten Sie");
  98.       PlotText(10,225,"die linke Maustaste drücken !!");
  99.     ELSE
  100.       PenColor(5);
  101.       PlotText(40,230,"... überrascht ??");
  102.     END;      
  103.     REPEAT UNTIL NOT (lmb IN Ciapra);
  104.     IF n = 0 THEN Close; END;
  105.   END;
  106. END TurtleDemo.
  107.  
  108.